package com.hsnn.medstgmini.trading.pur.controller;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.hsnn.medstgmini.Constants;
import com.hsnn.medstgmini.base.dict.model.form.DicAreaForm;
import com.hsnn.medstgmini.base.dict.service.DicAreaManager;
import com.hsnn.medstgmini.base.std.model.HospInfo;
import com.hsnn.medstgmini.base.std.model.StdCompinfo;
import com.hsnn.medstgmini.sys.model.SysUser;
import com.hsnn.medstgmini.trading.pur.model.ReturnOrder;
import com.hsnn.medstgmini.trading.pur.service.PurReturnOldOrderManager;
import com.hsnn.medstgmini.util.Pagination;
/**
 * 
 *@category 退货单历史记录
 *@author 邱磊
 *@date 2015年8月1日 上午10:19:53
 */
@Controller
@RequestMapping("/purReturnOldOrder")
public class PurReturnOldOrderController {
	private static final Logger log = Logger.getLogger(PurReturnOldOrderController.class);
	
	@Autowired
	private PurReturnOldOrderManager purReturnOldOrderManager;
	
	@Autowired
	private DicAreaManager dicAreaManager;
	
	@Autowired
	private HttpServletRequest request;

	@Autowired
	private HttpSession session;
	
	@Value("#{sysProp['system.province']}")
	private String sysProvince;
	
	/**
	 * @category 获取当前登陆人信息
	 * @date 2015年6月14日
	 * @return
	 */
	public SysUser getUser() {
		return (SysUser) session.getAttribute(Constants.USERINFO);
	}
	
	/**
	 * @category 跳转至历史退货订单[中心端]
	 * @date 2015年7月14日
	 * @return
	 */
	@RequestMapping("/toReturnOldOrder")
	public String toReturnOldOrder() {
		DicAreaForm area = dicAreaManager.getDicAreaById(sysProvince);
		request.setAttribute("area", area);
		request.setAttribute("sysAreaId", sysProvince);
		return "/trading/pur/returnOldOrder";
	}
	
	/**
	 * @category 跳转至历史退货订单明细[中心端]
	 * @date 2015年7月14日
	 * @return
	 * @throws UnsupportedEncodingException 
	 */
	@RequestMapping("/toReturnOldOrderDetail")
	public String toReturnOldOrderDetail() throws UnsupportedEncodingException {
		request.setAttribute("retCode",request.getParameter("retCode"));
		request.setAttribute("hospName",URLDecoder.decode(request.getParameter("hospName"), "utf-8"));
		request.setAttribute("compName",URLDecoder.decode(request.getParameter("compName"), "utf-8"));
		return "/trading/pur/returnOldOrderDetail";
	}
	
	/**
	 * @category 获取历史退货订单数据[中心端]
	 * @date 2015年7月14日
	 * @return
	 */
	@RequestMapping("/getReturnOldOrderList")
	@ResponseBody
	public Pagination getReturnOldOrderList(ReturnOrder returnOrder) {
		log.info("enter getReturnOldOrderList method");
		Pagination page = new Pagination(request);
		try {
			page.setForm(returnOrder);
			page = purReturnOldOrderManager.getReturnOldOrderList(page);
			page.setSuccess(true);
		} catch (Exception e) {
			log.error("",e);
		}
		return page;
	}
	/**
	 * 
	 *@category 已确认退货单（医疗机构）
	 *@author 韩守松
	 *@date 2015年12月14日 
	 *@return
	 */
	@RequestMapping("/toReturnOldOrderByHospList")
	public String toReturnOldOrderByHospList(){
		return "/trading/pur/returnOldOrderByHospList";
	}
	/**
	 * 
	 *@category 获取已确认退货单（医疗机构）
	 *@author 韩守松
	 *@date 2015年12月14日 
	 *@return
	 */
	@RequestMapping("/getReturnOldOrderByHospDataList")
	@ResponseBody
	public Pagination getReturnOldOrderByHospDataList(ReturnOrder returnOrder){
		log.info("获取历史退货单列表（医疗机构）:"+returnOrder);
		Pagination page = new Pagination(request);
		SysUser user = getUser();
		HospInfo hosp = user.getInfo();
		returnOrder.setHospCode(hosp.getHospCode());
		page.setForm(returnOrder);
		return purReturnOldOrderManager.getReturnOldOrderByHospDataList(page);
	}
	/**
	 * 
	 *@category 跳向历史退货单详情列表（医疗机构）
	 *@author 邱磊
	 *@date 2015年8月1日 上午10:27:17
	 *@return
	 */
	@RequestMapping("/toReturnOldOrderByHospDetail")
	public String toReturnOldOrderByHospDetail(){
		DicAreaForm area = dicAreaManager.getDicAreaById(sysProvince);
		request.setAttribute("area", area);
		request.setAttribute("sysAreaId", sysProvince);
		try {
			request.setAttribute("delCompName",new String(request.getParameter("delCompName").getBytes("ISO8859-1"),"utf-8"));
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "/trading/pur/returnOldOrderByHospDetail";
	}
	/**
	 * 
	 *@category 跳向历史退货单列表（配送企业）
	 *@author 邱磊
	 *@date 2015年8月1日 上午10:27:17
	 *@return
	 */
	@RequestMapping("/toReturnOldOrderByDelList")
	public String toReturnOldOrderByDelList(){
		return "/trading/pur/returnOldOrderByDelList";
	}
	/**
	 * 
	 *@category 获取历史退货单列表（配送企业）
	 *@author 邱磊
	 *@date 2015年8月1日 上午10:46:10
	 *@return
	 */
	@RequestMapping("/getReturnOldOrderByDelDataList")
	@ResponseBody
	public Pagination getReturnOldOrderByDelDataList(){
		Pagination page = new Pagination(request);
		SysUser user = (SysUser) request.getSession().getAttribute(Constants.USERINFO);
		String compId = ((StdCompinfo) user.getInfo()).getCompId();
		page.getConditions().put("delCompId", compId);
		page.getConditions().put("retCode", request.getParameter("retCode"));//退货单号
		page.getConditions().put("hospName", request.getParameter("hospName"));//医疗机构
		page.getConditions().put("beginTime", request.getParameter("beginTime"));//提交订单开始日期
		page.getConditions().put("endTime", request.getParameter("endTime"));//提交订单结束日期
		page.getConditions().put("confirmBeginTime", request.getParameter("confirmBeginTime"));//确认开始日期
		page.getConditions().put("confirmEndTime", request.getParameter("confirmEndTime"));//确认结束日期
		return purReturnOldOrderManager.getReturnOldOrderByDelDataList(page);
	}
	
	
	/**
	 * @category 跳转至历史退货订单[生产企业]
	 * @date 2015年7月14日
	 * @return
	 */
	@RequestMapping("/toProCompReturnOldOrder")
	public String toProCompReturnOldOrder() {
		DicAreaForm area = dicAreaManager.getDicAreaById(sysProvince);
		request.setAttribute("area", area);
		request.setAttribute("sysAreaId", sysProvince);
		return "/trading/pur/proCompReturnOldOrder";
	}
	
	/**
	 * @category 跳转至历史退货订单明细[生产企业]
	 * @date 2015年7月14日
	 * @return
	 * @throws UnsupportedEncodingException 
	 */
	@RequestMapping("/toProCompReturnOldOrderDetail")
	public String toProCompReturnOldOrderDetail() throws UnsupportedEncodingException {
		request.setAttribute("retCode",request.getParameter("retCode"));
		request.setAttribute("hospName",URLDecoder.decode(request.getParameter("hospName"), "utf-8"));
		request.setAttribute("compName",URLDecoder.decode(request.getParameter("compName"), "utf-8"));
		return "/trading/pur/proCompReturnOldOrderDetail";
	}
	
	/**
	 * @category 获取历史退货订单数据[生产企业]
	 * @date 2015年7月14日
	 * @return
	 */
	@RequestMapping("/getProCompReturnOldOrderList")
	@ResponseBody
	public Pagination getProCompReturnOldOrderList(ReturnOrder returnOrder) {
		log.info("enter getProCompReturnOldOrderList method");
		Pagination page = new Pagination(request);
		try {
			SysUser user = getUser();
			StdCompinfo compInfo = user.getInfo();
			returnOrder.setCompCode(compInfo.getCompCode());
			page.setForm(returnOrder);
			page = purReturnOldOrderManager.getProCompReturnOldOrderList(page);
			page.setSuccess(true);
		} catch (Exception e) {
			log.error("",e);
		}
		return page;
	}
	
	
}
